package com.reder.practice.service;

import com.reder.practice.common.dto.ServerResponse;

/**
 * 用户业务接口
 *
 * @author Fish
 * <p>Email: fishinlove@163.com</p>
 * <p>created by 2019/09/06 11:37:33</p>
 */
public interface UserService {

    /**
     * 分页查询用户信息
     *
     * @param pageNumber    查询第几页的用户
     * @param sizeOfOnePage 一页显示多少条数据
     * @return 返回用户列表
     */
    ServerResponse listUsers(int pageNumber, int sizeOfOnePage);

    /**
     * 用户注册
     *
     * @param nickname 用户昵称
     * @param password 用户密码
     * @return 返回注册信息
     */
    ServerResponse register(String nickname, String password);

    /**
     * 用户昵称是否已经被注册
     *
     * @param nickname 用户昵称
     * @return 返回这个用户昵称是否已经被注册
     */
    ServerResponse isNicknameExisted(String nickname);

    /**
     * 用户登录
     *
     * @param nickname 用户昵称
     * @param password 用户密码
     * @return 返回登录信息，包含用户信息
     */
    ServerResponse login(String nickname, String password);

    /**
     * 根据 id 查找用户信息
     *
     * @param id 用户 id
     * @return 返回用户信息
     */
    ServerResponse getUser(long id);

    /**
     * 根据用户昵称查找用户信息
     *
     * @param nickname 用户昵称
     * @return 返回用户信息
     */
    ServerResponse getUser(String nickname);
}
